সি শার্পে (C#) বেস ক্লাস এবং ডেরাইভড ক্লাস ইনহেরিটেন্সের মাধ্যমে সম্পর্কিত থাকে। বেস ক্লাস হলো মূল ক্লাস, যেখান থেকে ডেরাইভড ক্লাস বৈশিষ্ট্য এবং মেথড উত্তরাধিকারী হিসেবে গ্রহণ করে। ইনহেরিটেন্সের মাধ্যমে বেস ক্লাসের সাধারণ বৈশিষ্ট্যগুলো বিভিন্ন ডেরাইভড ক্লাসে ব্যবহার করা যায়, যা কোড রিইউজ এবং সরলতা নিশ্চিত করে।
বেস ক্লাস হলো এমন একটি ক্লাস যা ডেরাইভড ক্লাসের জন্য একটি ব্লুপ্রিন্ট হিসেবে কাজ করে। ডেরাইভড ক্লাস ইনহেরিটেন্সের মাধ্যমে বেস ক্লাসের বৈশিষ্ট্য (প্রোপার্টি এবং মেথড) গ্রহণ করতে পারে। বেস ক্লাসকে parent class
বা super class
ও বলা হয়।
public class Animal
{
public string Name;
public void Eat()
{
Console.WriteLine("Eating...");
}
}
উপরের উদাহরণে, Animal
হলো বেস ক্লাস, যেখানে Name
প্রোপার্টি এবং Eat()
মেথড রয়েছে।
ডেরাইভড ক্লাস হলো এমন একটি ক্লাস, যা বেস ক্লাসের বৈশিষ্ট্য এবং মেথডগুলো ইনহেরিট করে। ডেরাইভড ক্লাসে নতুন বৈশিষ্ট্য এবং মেথডও যুক্ত করা যায়, যা শুধুমাত্র সেই ডেরাইভড ক্লাসের জন্য প্রযোজ্য। ডেরাইভড ক্লাসকে child class
বা sub class
ও বলা হয়।
ডেরাইভড ক্লাস তৈরি করার জন্য C# এ :
চিহ্ন ব্যবহার করে বেস ক্লাসের সাথে সম্পর্ক স্থাপন করা হয়।
public class Dog : Animal
{
public void Bark()
{
Console.WriteLine("Barking...");
}
}
এখানে Dog
হলো ডেরাইভড ক্লাস, যা Animal
বেস ক্লাস থেকে ইনহেরিট করেছে। ফলে Dog
ক্লাসে Eat()
মেথড এবং Name
প্রোপার্টি অ্যাক্সেসযোগ্য।
using System;
namespace InheritanceExample
{
// বেস ক্লাস
public class Animal
{
public string Name;
public void Eat()
{
Console.WriteLine(Name + " is eating...");
}
}
// ডেরাইভড ক্লাস
public class Dog : Animal
{
public void Bark()
{
Console.WriteLine(Name + " is barking...");
}
}
public class Cat : Animal
{
public void Meow()
{
Console.WriteLine(Name + " is meowing...");
}
}
class Program
{
static void Main(string[] args)
{
// Dog অবজেক্ট তৈরি এবং বৈশিষ্ট্য ব্যবহার
Dog dog = new Dog();
dog.Name = "Buddy";
dog.Eat(); // Output: Buddy is eating...
dog.Bark(); // Output: Buddy is barking...
// Cat অবজেক্ট তৈরি এবং বৈশিষ্ট্য ব্যবহার
Cat cat = new Cat();
cat.Name = "Whiskers";
cat.Eat(); // Output: Whiskers is eating...
cat.Meow(); // Output: Whiskers is meowing...
}
}
}
Buddy is eating...
Buddy is barking...
Whiskers is eating...
Whiskers is meowing...
ডেরাইভড ক্লাসে বেস ক্লাসের মেথড ওভাররাইড করার জন্য override
কীওয়ার্ড ব্যবহার করা হয়। এজন্য বেস ক্লাসের মেথড virtual
হিসেবে ঘোষণা করতে হয় এবং ডেরাইভড ক্লাসে ওভাররাইড করা হয়।
public class Animal
{
public virtual void MakeSound()
{
Console.WriteLine("Animal makes a sound");
}
}
public class Dog : Animal
{
public override void MakeSound()
{
Console.WriteLine("Dog barks");
}
}
এখানে Dog
ক্লাসে MakeSound()
মেথড ওভাররাইড করা হয়েছে।
class Program
{
static void Main(string[] args)
{
Animal animal = new Animal();
animal.MakeSound(); // Output: Animal makes a sound
Dog dog = new Dog();
dog.MakeSound(); // Output: Dog barks
}
}
সি শার্পে বেস ক্লাস হলো মূল ক্লাস, যেখানে সাধারণ বৈশিষ্ট্য ও মেথড থাকে, এবং ডেরাইভড ক্লাস সেই বৈশিষ্ট্য ও মেথড উত্তরাধিকারী হিসেবে গ্রহণ করে। ইনহেরিটেন্সের মাধ্যমে কোড পুনরায় ব্যবহারযোগ্য হয় এবং সহজে সম্প্রসারণ করা যায়। ওভাররাইডিংয়ের মাধ্যমে ডেরাইভড ক্লাসে বেস ক্লাসের মেথড পুনঃসংজ্ঞায়িত করা যায়, যা পলিমরফিজম নিশ্চিত করে।
আরও দেখুন...